/**
 * Project Name:SysUser.java
 * File Name:SysUser.java
 * Date:2018年06月28日 11:09
 * Copyright (c) 2018, zhang.xiangyu@foxmail.com All Rights Reserved.
 */
package com.meatball.base.system.user.model;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import com.meatball.base.system.menu.model.SysMenu;
import com.meatball.base.system.role.model.SysRole;
import com.meatball.utils.DateUtil;
import com.meatball.vo.Pagetag;

/**   
 * @Title: SysUser
 * @Description: todo(系统用户)
 * @Author 張翔宇
 * @Date 2018年06月28日 11:09
 */
@Data
public class SysUser extends Pagetag implements Serializable {
	private static final long serialVersionUID = 1L;
	
    /**
     * 主键
     */
	private Long id;
	
    /**
     * 头像
     */
    private String avatar;
    
    /**
     * 账号
     */
    private String account;

    /**
     * 密码
     */
    private String password;

    /**
     * vo 是否重置密码
     */
    private boolean resetPwd = false;

    /**
     * md5密码盐
     */
    private String salt;

    /**
     * 名字
     */
    private String name;

    /**
     * 生日
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date birthday;
    /**
     * vo 生日文字描述
     */
    private String birthdayText;

    /**
     * 性别（1：男 2：女）
     */
    private Integer sex;
    /**
     * vo 性别文字描述
     */
    private String sexName;

    /**
     * 电子邮件
     */
    private String email;

    /**
     * 电话
     */
    private String phone;

    /**
     * 角色id
     */
    private String roleid;

    /**
     * 部门id
     */
    private Integer deptid;

    /**
     * 状态(1：启用  0：冻结）
     */
    private Integer status;
    /**
     * vo 状态文字描述
     */
    private String statusName;
    /**
     * vo 状态Boolean类型描述
     */
    private boolean statusType;

    /**
     * 创建时间
     */
    private Date createtime;
    /**
     * vo 时间文字描述
     */
    private String createtimeText;

    /**
     * 保留字段
     */
    private Integer version;

    /**
     * vo 用户验证用户信息
     */
    private String verify;

    /**
     * 是否记住密码
     */
    private boolean rememberMe;

    /**
     * 公钥
     */
    private String publicKey;

    /**
     * 私钥
     */
    private String privateKey;

    /**
     * APPID
     */
    private Long appid;

    /**
     * vo 角色列表
     */
    private List<SysRole> rolesVo;

    /**
     * vo菜单列表
     */
    private List<SysMenu> menusVo;

    /**
     * vo
     */
    private String loginUser;

    public void setBirthday(Date birthday) {
        this.birthdayText = DateUtil.getDay(birthday);
        this.birthday = birthday;
    }

    public void setSex(Integer sex) {
        if(sex.equals(1)) {
            this.sexName = "男";
        } else if(sex.equals(2)) {
            this.sexName = "女";
        } else {
            this.sexName = "保密";
        }
        this.sex = sex;
    }

    public void setStatus(Integer status) {
        if(status.equals(1)) {
            this.statusName = "启用";
        } else {
            this.statusName = "冻结";
        }
        this.status = status;
    }

    public void setStatusType(boolean statusType) {
        if(statusType) {
            this.status = 1;
        } else {
            this.status = 0;
        }
        this.statusType = statusType;
    }

    public void setCreatetime(Date createtime) {
        this.createtimeText = DateUtil.getTime(createtime);
        this.createtime = createtime;
    }
}